# Template file for 'gtk+3'
pkgname=gtk+3
version=3.24.49
revision=10
build_style=meson
build_helper="gir"
configure_args="
 $(vopt_bool x11 x11_backend)
 $(vopt_bool wayland wayland_backend)
 $(vopt_bool broadway broadway_backend)
 -Dprint_backends=$(vopt_if cups 'cups,')file
 $(vopt_bool cloudproviders)
 -Dcolord=$(vopt_if colord yes no)
 $(vopt_bool gtk_doc)
 -Dman=true
 $(vopt_bool gir introspection)
 -Dexamples=false
 "
conf_files="/etc/gtk-3.0/im-multipress.conf"
hostmakedepends="gettext-devel glib-devel gtk-doc perl pkgconf
 gdk-pixbuf $(vopt_if wayland 'wayland-devel wayland-protocols')"
makedepends="at-spi2-atk-devel gdk-pixbuf-devel libepoxy-devel pango-devel
 iso-codes $(vopt_if colord 'colord-devel') $(vopt_if cups 'cups-devel')
 $(vopt_if wayland 'libxkbcommon-devel wayland-devel wayland-protocols MesaLib-devel')
 $(vopt_if x11 'libXcursor-devel libXdamage-devel libXext-devel libXinerama-devel libXi-devel libXrandr-devel libXcomposite-devel')
 $(vopt_if cloudproviders 'libcloudproviders-devel')"
depends="adwaita-icon-theme
 librsvg shared-mime-info $(vopt_if x11 'dbus-x11')"
checkdepends="$depends xvfb-run dbus cantarell-fonts hicolor-icon-theme gsettings-desktop-schemas"
short_desc="GTK3 patched to provide a more classic experience"
maintainer="MarcoAPC <marcoaureliopc@gmail.com>"
license="LGPL-2.1-or-later"
homepage="https://www.gtk.org/"
changelog="https://gitlab.gnome.org/GNOME/gtk/-/raw/gtk-3-24/NEWS"
distfiles="${GNOME_SITE}/gtk/${version%.*}/gtk-${version}.tar.xz"
checksum=5ea52c6a28f0e5ecf2e9a3c2facbb30d040b73871fcd5f33cd1317e9018a146e
make_check_pre="xvfb-run dbus-run-session"
conflicts="gtk3-nocsd"
patch_args="-Np1"
# _broken_tests=""

case "$XBPS_TARGET_MACHINE" in
	i686*) _broken_tests="reftests/linear-gradient.ui" ;;
esac

if [ "$XBPS_CHECK_PKGS" ]; then
	configure_args+=" -Dtests=true"
else
	configure_args+=" -Dtests=false"
fi

# Package build options
build_options="broadway colord cups gir cloudproviders wayland x11 gtk_doc"
desc_option_broadway="Enable support for the HTML5 Broadway backend"
desc_option_cloudproviders="Enable integration with cloudproviders, such as Nextcloud"

# Enable all options (other than cloudproviders) by default.
build_options_default="colord cups gir broadway wayland x11"
if [ -z "$CROSS_BUILD" ]; then
	build_options_default+=" gtk_doc"
fi

pre_check() {
	for t in $_broken_tests; do
		test_dir="testsuite/${t%\/*}"
		test_name="${t##*\/}"

		vsed -e "/'${test_name}'/d" -i "${test_dir}/meson.build"
	done
}
do_check() {
	xvfb-run dbus-run-session ninja -C build ${makejobs} test
}

post_install() {
	vmkdir /usr/share/gtk/theme/Adwaita/
	vinstall ${FILESDIR}/gtk-contained-dark.css 0644 /usr/share/gtk/theme/Adwaita/
	vinstall ${FILESDIR}/settings.ini 0644 /usr/share/gtk-3.0
	rm -f ${DESTDIR}/usr/bin/gtk-update-icon-cache
	rm -f ${DESTDIR}/usr/share/man/man1/gtk-update-icon-cache.1
}

gtk+3-devel_package() {
	depends="${makedepends} ${sourcepkg}>=${version}_${revision}"
	short_desc+=" - development files"
	pkg_install() {
		vmove usr/include
		vmove usr/lib/pkgconfig
		vmove "usr/lib/*.so"
		if [ "$build_option_gir" ]; then
			vmove usr/share/gir-1.0
		fi
		if [ "$build_option_gtk_doc" ]; then
			vmove usr/share/gtk-doc
		fi
		vmove usr/share/aclocal
	}
}

gtk+3-demo_package() {
	short_desc+=" - demonstration application"
	pkg_install() {
		vmove usr/bin/gtk3-demo
		vmove usr/bin/gtk3-widget-factory
		vmove usr/bin/gtk3-demo-application
		vmove usr/share/man/man1/gtk3-widget-factory.1
		vmove usr/share/gtk-3.0/gtkbuilder.rng
		vmove usr/share/glib-2.0/schemas/org.gtk.Demo.gschema.xml
		vmove usr/share/applications/gtk3-widget-factory.desktop
		vmove usr/share/applications/gtk3-demo.desktop
		vmove usr/share/icons
	}
}
